#!/usr/bin/env node

const VisionAnalyzerApplication = require('./lib/application/application');

/**
 * 主函数 - 启动Vision Analyzer应用
 */
async function main() {
    try {
        // 创建应用实例
        const app = new VisionAnalyzerApplication({
            projectRoot: process.cwd()
        });

        // 运行应用
        const result = await app.run();

        // 处理应用运行结果
        if (result.started) {
            console.log('[Vision Analyzer] 应用启动成功');

            // 如果是配置完成状态，正常退出
            if (result.mode === 'config_complete') {
                process.exit(0);
            }
        } else if (result.error) {
            console.error('[Vision Analyzer] 启动失败:', result.error);
            process.exit(1);
        }
    } catch (error) {
        console.error('[Vision Analyzer] 应用启动异常:', error.message);
        console.error('Full error stack:', error.stack);
        process.exit(1);
    }
}

// 错误处理
process.on('uncaughtException', (error) => {
    console.error('[Vision Analyzer] Uncaught exception:', error);
    process.exit(1);
});

process.on('unhandledRejection', (reason, promise) => {
    console.error('[Vision Analyzer] Unhandled rejection at:', promise, 'reason:', reason);
    process.exit(1);
});

// 启动应用
if (require.main === module) {
    main().catch((error) => {
        console.error('[Vision Analyzer] Server failed to start:', error);
        process.exit(1);
    });
}

// 导出应用实例（用于测试）
module.exports = { VisionAnalyzerApplication };